﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Aletfa.LightManager.Effects
{
    internal interface IGameEffect
    {
        /// <summary>
        /// Esegue questo effetto su un bersaglio
        /// </summary>
        /// <param name="target">persaglio sul quale applicare l'effetto</param>
        string Perform(Unit target);

        /// <summary>
        /// Annulla questo effetto dal bersaglio
        /// </summary>
        /// <param name="target">persaglio sul quale rimuovere l'effetto</param>
        string Undo(Unit target);

        /// <summary>
        /// True se l'effetto una volta scaduto va rimosso
        /// </summary>
        bool IsTemporary { get; }

        /// <summary>
        /// True se l'azione non va rieseguita più di una volta
        /// </summary>
        bool IsOneShot { get; }
    }
}
